Arquitectura
cliente servidor
Consiste básicamente en un cliente que realiza
peticiones a otro programa (el servidor) que le da respuesta.
Aunque esta idea se puede aplicar a programas que se ejecutan
sobre una sola computadora es más ventajosa en un sistema
operativo multiusuario distribuido a través de una red de
computadoras.
En esta arquitectura la capacidad de proceso está
repartida entre los clientes y los servidores, aunque son
más importantes las ventajas de tipo organizativo debidas
a la centralización de la gestión de la
información y la separación de responsabilidades,
lo que facilita y clarifica el diseño del
sistema.
Características:
El servidor presenta a todos sus clientes una
interfaz única y bien definida.El cliente no necesita conocer la lógica del
servidor, sólo su interfaz externa.El cliente no depende de la ubicación
física del servidor, ni del tipo de equipo
físico en el que se encuentra, ni de su sistema
operativo.Los cambios en el servidor implican pocos o
ningún cambio en el cliente.
A continuación se detallan algunas ventajas de
esta arquitectura como la centralización de los recursos,
mejoramiento de la seguridad, administración del nivel del
servidor, Red escalable, centralización del control,
Escalabilidad, Fácil Mantenimiento, tecnologías
bastante desarrolladas, diseñadas en el entorno de C/S
para asegurar las transacciones, amigabilidad de la interfaz y la
facilidad de empleo; la Principal desventaja a parte del alto
costo es que el servidor es el único eslabón
débil en la red de cliente/servidor, puesto que toda la
red está construida en torno a él, además el
hardware y software en un servidor son determinantes puesto que
un hardware en un ordenador puede no poder servir a cierta
cantidad de clientes y se requiere de software y hardware
específico, más en el servidor para dar
garantía del trabajo.
Oracle
9I
Oracle es una de las mejores bases de datos que
están en el mercado, tienen características que
garantizan la seguridad e integridad de los datos, que las
transacciones se efectuaran de manera correcta, sin causar
inconsistencias, el procesamiento de grandes volúmenes de
información será segura.
Es un sistema de gestión de base de datos
relacional Se considera a Oracle como uno de los sistemas de
bases de datos más completos es considerado como una
herramienta cliente/servidor para la gestión de base de
datos, destacándose por soporte de transacciones,
estabilidad, escalabilidad y soporte multiplataforma.
La principal herramienta es la BD como tal, esta
compuesta de un repositorio de datos y un DBMS (data base
management system), en el repositorio de datos se encuentran
todos los objetos y el DBMS se encarga de manipular los objetos
(tablas, vistas, triggers, procedimientos, paquetes, usuarios,
entre otras) que ese encuentra en el repositorio.
Instalación
Instalación De Oracle 9i
Introduciremos el CD 1 de la instalación, los
tres CDs que componen el programa de instalación se pueden
descargar gratuitamente desde la propia web.
Seleccionar la ruta de los ficheros de Oracle y
Siguiente y seleccionamos Oracle9i Database
9.2.0.1.0 .
Seleccionaremos Enterprise Edition, y luego
presionamos Siguiente
Seleccionaremos la siguiente opción de Uso
General
Seleccionaremos el puerto para Oracle MTS Service,
normalmente se suele seleccionar el puerto por defecto
2030.
Especificaremos el nombre de la base de datos (con un
máximo de 8 caracteres):
El SID es el identificador interno que
utilizará Oracle para referenciar a nuestra base de datos,
se puede elegir uno diferente al del nombre de la Base de Datos,
aunque se suele utilizar el mismo.
En este punto de la instalación seleccionaremos
la ubicación de los archivos de la base de datos que la
instalación creará. Oracle recomienda que la
ubicación de los archivos de la base de datos esté
en un disco físico distinto al de los archivos de la
instalación (software de Oracle).
• Seleccionaremos el juego de caracteres que
vayamos a utilizar, si dejamos el juego de caracteres por
defecto Oracle.
Pulsamos Instalar:
Introduciremos los CDs de instalación o la ruta
de los archivos conforme los vaya pidiendo el
programa:
Tras la instalación de Oracle y la
creación de la base de datos aparecerá una ventana
indicando que el proceso de instalación ha
finalizado:
Arquitectura de
un servidor
Por cada instancia de Oracle se tiene una sola base de
datos y en un servidor se puede crear varias instancias pero es
recomendable solo una porque cada instancia consume muchos
recursos.
Componentes básicos:
Estructuras de memoria. Procesos. Archivos.
INSTANCIAS.
Una instancia de BD es el conjunto de estructuras de
memoria y de procesos que acceden a los ficheros de datos. La
instancia de Oracle esta compuesta por el proceso de fondo y un
área de memoria compartida SGA la misma que consiste en
una estructura de memoria SGA (System Global Area) y un conjunto
de procesos usados por el servidor de Oracle para gestionar una
BD.
Estructura de
memoria
SGA (System Global Area)
PGA (Process Global Area)
SGA (System Global
Area)
Sirve para facilitar la transferencia de
información entre usuarios y también almacena la
información estructural de la BD más frecuentemente
requerida.
El SGA es utilizado para el intercambio de datos entre
el servidor y las aplicaciones cliente.
Library Cache
Database Dictionary Cache
Database Buffer Cache
Redo Log Buffer Cache
PGA (Process Global
Area)
El Process Global Area es un área de memoria
utilizada por un proceso Oracle. Esta zona de memoria no se puede
compartir. Es un área no compartida en la cual se puede
escribir y contiene un área de almacenamiento, la
información de la sesión, el estado del cursor y el
espacio de la pila.
PROCESOS
Los procesos son programas que se ejecutan para permitir
el acceso a los datos, estos procesos se cargan en memoria y son
transparentes para los usuarios y son los siguientes:
PMON (Process Monitor).- Monitorea los procesos
de los usuarios en caso de que la conexión
falle.
SMON (System Monitor).- Proceso encargado de
recuperar la instancia y abrir la base de datos en caso de que
ocurra alguna falla.
CKPT (CheckPoint Process).- Sintoniza las tareas
de grabación en BD.
DBWR (Database Write).- Escribe los bloques de
datos de la memoria a la base de datos, es uno de los dos
únicos procesos que tienen permitido escribir en los
archivos de datos que componen la base de datos
Oracle.
LGWR (Log Writer).- Graba los bloques del
Redo Log del Fuffer a los archivos Redo Log File y escribe las
transacciones que se encuentran en los Redo Log a Disco cuando
ocurre un commit.
La base de datos Oracle es un conjunto de datos
tratados como una sola y misma entidad y está constituida
de tres tipos de archivos, a saber:
Control File.- Contiene información para
mantener y controlar la integridad de la base de datos. Estos
archivos especifican cuales Datafiles conforman la BD para poder
tener acceso a los datos o para poder recuperar la BD antes de
una falla
Data File.- Sirve para el almacenamiento
físico de las tablas, índices y procedimientos,
Estos son los archivos donde se almacenan los datos de las
aplicaciones es decir contienen los datos de los usuarios de la
base de datos.
Redo Log File.- Almacena los cambios hechos en la
base de datos con propósito de recuperarlos en caso de
falla.
Conexiones de una
Base de datos
CONEXIÓN NATIVA.- Es una conexión
entre el cliente y el servidor sin utilizar otra
aplicación y pertenecen a una misma plataforma (familia).
Se requiere:
Add Database Alias
Database Alias. Nombre a la instancia del servidor o
nombre a la base de datos de nuestro servidor.
Protocolo a usar (TCP/IP).
TCP/IP
Hostname: IP del servidor
Database Instance: Oracle
Verificación de los datos
Exit Neteasy Configuration
CONEXIÓN ODBC.- Es una conexión
entre el cliente y el servidor utilizando una aplicación
para la conexión, es decir una conexión entre
diferentes plataformas (familias). Se requiere:
Instalar el driver ODBC de Oracle.
Crear la conexión nativa.
Crear la conexión ODBC.
Proceso Usuario.- Es un programa,
aplicación o herramienta que usa el usuario para iniciar
un proceso de usuario y establecer una
conexión.
Proceso servidor.- Una vez establecida la
conexión, un proceso servidor es iniciado, el cual maneja
la peticiones del proceso usuario. Un proceso servidor puede ser
dedicado, es decir es decir solo atiende las peticiones de un
solo proceso usuario, o puede ser compartido, con lo cual puede
atender múltiples procesos usuarios.
Sesión.- Es una conexión
específica de un usuario a un servidor Oracle. Se inicia
cuando el usuario es validado por el servidor Oracle y finaliza
cuando el usuario termina la sesión en forma normal o
aborta la sesión.
SQL
Plus
Es una herramienta que permite al usuario comunicarse
con el servidor para procesar comandos SQL o PL/SQL tiene la
flexibilidad de realizar inicio y parada de la base de
datos.
DDL (Data Definition Language ).- Lenguaje de
definición de datos, este lenguaje es proporcionado por el
sistema de gestión de base de datos que permite a los
usuarios de la misma llevar a cabo las tareas de
definición de las estructuras que almacenarán los
datos así como de los procedimientos o funciones que
permitan consultarlos. El lenguaje de programación SQL, el
más difundido entre los gestores de bases de datos, admite
las siguientes sentencias de definición: CREATE, DROP y
ALTER, cada una de las cuales se puede aplicar a las
tablas, vistas, procedimientos
almacenados y triggers de la base de
datos.
Otras que se incluyen dentro del DDL, pero que su
existencia depende de la implementación del
estándar SQL que lleve a cabo el gestor de base de datos
son GRANT y REVOKE, los cuales sirven para otorgar permisos o
quitarlos, ya sea a usuarios específicos o a un rol creado
dentro de la base de datos.
DML (Data Manipulation Language).- Lenguaje de
Manipulación de Datos, es un lenguaje proporcionado por el
sistema de gestión de base de datos que permite a los
usuarios de la misma llevar a cabo las tareas de consulta o
manipulación de los datos, organizados por el modelo de
datos adecuado. El lenguaje de manipulación de datos
más popular hoy día es SQL, usado para recuperar y
manipular datos en una base de datos relacional. Otros ejemplos
de DML son los usados por bases de datos IMS/DL1, CODASYL u
otras.
CONEXIÓN UTILIZANDO
PL/SQL
Para la conexión debemos ingresar el usuario, la
contraseña y la cadena de conexión y podemos
utilizar los siguientes usuarios.
La pantalla de bienvenida a SQL Plus indicara lo
siguiente y estaremos listos para trabajar.
OBJETOS DE LA BASE DE DATOS
USUARIOS
Una cuenta de usuario no es una estructura física
de la BD, pero está relacionada con los objetos de la BD:
los usuarios poseen los objetos de la BD. Existen dos usuarios
especiales: SYS y SYSTEM.
El usuario SYS posee las tablas del diccionario de
datos; que almacenan información sobre el resto de las
estructuras de la BD.El usuario SYSTEM posee las vistas que permiten
acceder a las tablas del diccionario, para el uso del resto
de los usuarios de la BD.
Todo objeto creado en la BD se crea por un usuario, en
un espacio de tablas y en un fichero de datos determinado. Toda
cuenta de la BD puede estar unida a una cuenta del S.O, lo que
permite a los usuarios acceder a la cuenta de la BD sin dar la
clave de acceso.
Cada usuario puede acceder a los objetos que posea o a
aquellos sobre los que tenga derecho de acceso.
Características:
Es el medio de conexión entre el usuario y la
base de datos.Los usuarios son los diferentes usuarios de la Base
de Datos. Cada uno es propietario de sus objetos.Un usuario puede ser activo es decir que puede
interactuar con la BD o puede ser un usuario
inactivo.
Consideraciones para crear un usuario:
El nombre de usuario no debe superar 30
caracteres, no debe tener caracteres especiales
y debe iniciar con una letra.El usuario puede autentificarse de varias formas por
medio de:Password
Usuario heredado
Autentificación global. Que puede ser por
password o heredado.Un perfil o profile de usuario, que son las
restricciones que puede tener su cuenta
(opcional).
PRIVILEGIOS
Los privilegios pueden ser de dos tipos:
1. Privilegios del sistema, como por ejemplo
para crear tablas.2. Privilegios sobre objetos, como por ejemplo
permiso de select sobre una tabla concreta.
PRIVILEGIOS DEL SISTEMA
Permite al usuario hacer ciertas tareas sobre
la BD, como por ejemplo crear un Tablespace. Estos permisos
son otorgados por el administrador o por alguien que haya
recibido el permiso para administrar ese tipo de
privilegio.
En general los permisos de sistema, permiten ejecutar
comandos del tipo DDL (Data definition Language), como CREATE,
ALTER y DROP o del tipo DML (Data Manipulation
Language.
Privilegio | Descripción | ||
CREATE ANY INDEX | Crear cualquier índice. | ||
CREATE [PUBLIC] SYNONYM | Crear sinónimos | ||
CREATE [ANY] TABLE | Crear tablas. El usuario debe tener cuota en el | ||
CREATE [ANY] VIEW | Crear vistas. | ||
ALTER ANY INDEX | Alterar cualquier índice. | ||
ALTER ANY TABLE | Alterar cualquier tabla | ||
DROP ANY INDEX | Borrar cualquier índice. | ||
DROP ANY SYNONYM | Borrar cualquier sinónimo. | ||
DROP PUBLIC SYNONYM | Borrar sinónimos | ||
DROP ANY VIEW | Borrar cualquier vista. | ||
DROP ANY TABLE | Borrar cualquier tabla. | ||
SELECT ANY TABLE | Efectuar selecciones de cualquier tabla o | ||
INSERT ANY TABLE | Insertar en cualquier tabla o vista. | ||
DELETE ANY TABLE | Borrar filas de cualquier tabla o vista, y | ||
ALTER SESSION | Alterar los parámetros de la | ||
CREATE SESSION | Conectarse a la BD. | ||
CREATE PROFILE | Crear perfiles de usuario. | ||
CREATE ROLE | Crear roles. | ||
CREATE ROLLBACK SEGMENT | Creación de segmentos de | ||
CREATE TABLESPACE | Crear espacios de tablas. | ||
CREATE USER | Crear usuarios. | ||
ALTER PROFILE | Alterar perfiles existentes. | ||
ALTER ANY ROLE | Alterar cualquier rol. | ||
ALTER ROLLBACK SEGMENT | Alterar segmentos de rollback. | ||
ALTER TABLESPACE | Alterar espacios de tablas. | ||
ALTER USER | Alterar usuarios. | ||
DROP PROFILE | Borrar un perfil existente. | ||
DROP ANY ROLE | Borrar cualquier rol. | ||
DROP ROLLBACK SEGMENT | Borrar un segmento de rollback | ||
DROP TABLESPACE | Borrar un espacio de tablas. | ||
DROP USER | Borrar un usuario. Añadir CASCADE si el | ||
ALTER DATABASE | Permite una sentencia ALTER DATABASE. | ||
GRANT ANY PRIVILEGE | Otorgar cualquiera de estos | ||
GRANT ANY ROLE | Otorgar cualquier rol a un usuario. | ||
UNLIMITED TABLESPACE | Puede usar una cantidad de almacenamiento | ||
DROP PROFILE | Borrar un perfil existente. |
Este tipo de privilegios le permite al
usuario hacer cierta acción en un objeto de la base de
datos, como puede ser una tabla, vista, función etc. Si a
un usuario no se le dan estos privilegios solo podrías
acceder a sus propios objetos. Y estos tipos de privilegios los
da el dueño del objeto, el administrador o alguien que
haya recibido este permiso explícitamente. Los privilegios
sobre objetos consienten que un objeto (creado por un usuario)
estos privilegios puede ser de SELECT, de UPDATE, de DELETE, de
INSERT.
Privilegio | Descripción | ||||
SELECT | Puede consultar a un objeto. | ||||
INSERT | Puede insertar filas en una tabla o vista. Puede | ||||
UPDATE | Puede actualizar filas en una tabla o vista. Puede | ||||
DELETE | Puede borrar filas dentro de la tabla o | ||||
ALTER | Puede alterar la tabla. | ||||
INDEX | Puede crear índices de una | ||||
REFERENCES | Puede crear claves ajenas que referencie a esta | ||||
EXECUTE | Puede ejecutar un procedimiento, paquete o | ||||
READ | Permite leer archivos asociados con objetos BFILE |
ROLES
Los roles son conjuntos de privilegios. Un rol puede
tener garantizados una serie de privilegios tanto del sistema
como sobre objetos, y a la vez puede tener garantizado otros
roles.
Por default cuando creamos un usuario desde el
Enterprise Manager se le asigna el permiso de Connect, lo
que permite al usuario conectarse a la BD y crear sus
propios objetos en su propio esquema. De otra manera, debemos
asignarlos en forma manual.
PERFILES
Los perfiles permiten definir limitaciones de recursos.
Por ejemplo podemos definir un perfil que limite el número
de sesiones abiertas concurrentemente por un usuario cualquiera,
y posteriormente aplicar este perfil a uno o más usuarios
concretos.
Creación de tablas
Proveedores
Productos
Clientes
Compras
Detalle compras
Ventas
Detalle ventas
Proveedores
Clientes
Productos
Compras
Ventas
Detalle compras
Detalle ventas
SECUENCIAS
A menudo es preciso generar números en forma
ordenada para implementar, por ejemplo, una clave primaria en una
tabla o garantizar que esos números no se repiten y van
siempre en un orden predefinido por el desarrollador (no
necesariamente secuenciales).
Oracle implementa los objetos denominadas
secuencias, que permiten hacer lo anterior de manera
transparente para el usuario.
Cuando se define una secuencia se deben indicar, como
mínimo, el valor de partida (valor mínimo) y el
incremento.
Es un objeto que permite generar valores
únicos. Se emplean para obtener las claves primarias
de las tablas.Objeto que genera números en forma
continua.
La sintaxis de creación de una
secuencia:
CREATE SEQUENCE nombre_secuencia
DISPARADORES
Son procedimientos que son ejecutados cuando se produce
un determinado evento en la BD. Se pueden utilizar para mejorar y
reforzar la integridad y la seguridad de la BD.
Son segmentos de código PL/SQL que se ejecutan
cuando se producen operaciones de DML. Se definen a nivel de
tabla y se clasifican según tres
parámetros:
Before/After, si se ejecuta antes o después
de la sentencia.Insert/Update/Delete, según se ejecute una de
estas sentencias.Each row/Statement dependiendo si se ejecuta para
cada fila afectada en la sentencia, o bien una sola vez por
sentencia con independencia de las filas de la tabla
afectadas.
Clientes
Productos
Proveedores
Compras
Detalle Compras
Ventas
Glosario de
términos
Administrador de Base de Datos
El administrador o DBA es el principal responsable de la
operación, configuración y rendimiento de una base
de datos. Su principal tarea consiste en resguardar la integridad
de los datos almacenados en la base, proveyendo para esto
mecanismos de respaldo, efectuando monitorizaciones
periódicas al sistema, implementando medidas de seguridad,
etc.
Bloque
Un bloque es la unidad más pequeña de
almacenamiento en una base de datos Oracle. El tamaño
mínimo es de 2 KB y el máximo no debiera superar
los 16 KB.
Buffer
Este término se refiere a una cantidad de memoria
utilizada para almacenar información. Un buffer
comúnmente almacena datos que están a punto de ser
usados o se acaban de utilizar recientemente. En la
mayoría de los casos son copias exactas de datos que se
encuentran almacenados en el disco y se mantienen en memoria con
el fin de lograr un acceso más rápido y ayudar de
esa manera a mejorar el rendimiento de un sistema.
En Oracle, los buffers del SGA almacenan los
bloques de datos usados más recientemente. El conjunto de
buffers que guardan estos bloques reciben el nombre de
Database buffer cache; y aquellos que se utilizan para
guardar temporalmente las entradas del tipo redo log
hasta que se escriben en el disco, se conocen como redo log
buffers.
Caché
Es un área de almacenamiento implementada en la
memoria RAM del computador que permite accesos más
rápidos a la información ya que es mucho más
veloz que la memoria. En Oracle, los buffers de bloques
y el área shared pool son consideradas
áreas caché. Estas guardan los datos que se
utilizan con mayor frecuencia y los mantienen disponibles por si
son requeridos en los procesos de consulta hasta que nuevos datos
más frecuentemente usados los reemplazan.
Checkpoint
Un checkpoint es una operación que
fuerza a que todos los cambios registrados en bloques de datos en
memoria, sean escritos en el disco.
Clean buffer
Un buffer de este tipo es aquel que no ha sido
modificado y que por lo tanto el proceso DBWR no utilizará
para confirmar los cambios en el disco (porque no ha sufrido
cambios).
DBMS
El database management system o DBMS
corresponde al software y grupo de herramientas que permiten
manejar la base de datos. Un RDBMS es un DBMS relacional, es
decir, cuya naturaleza es la formación de relaciones al
interior del mismo.
DDL (comandos DDL)
Los comandos DDL (data definition language) son
utilizados en la creación y modificación de objetos
del esquema. Proveen la habilidad de crear, alterar e incluso
eliminar objetos de un esquema, otorgar y revocar privilegios y
roles a los usuarios, establecer opciones de auditoria e incluso
agregar comentarios al diccionario de datos del sistema. Estos
comandos están estrechamente relacionados con las labores
de administración de la base de datos.
Diccionario de Datos
El diccionario de datos es un grupo de tablas de Oracle
que se utilizan para almacenar información sobre el resto
de las tablas, índices, clusters y otros objetos de la
base de datos.
DML (comandos DML)
Los comandos DML (data manipulation language)
son menos poderosos que los comandos DDL en cuanto a
administración se refiere, de hecho, implementan
modificaciones sobre la información que se guarda en los
objetos de una base de datos. Estas sentencias son del tipo
DELETE, INSERT, SELECT y UPDATE, principalmente.
Esquema
Un esquema es una colección de objetos asociados
dentro de una base de datos.
Función
Una función es un grupo de sentencias SQL,
escritas generalmente en PL/SQL que implementan una serie de
rutinas que devuelven un valor. Son casi idénticas a los
procedimientos y sólo se diferencian en esa última
condición. Implementando funciones en el servidor de base
de datos se reduce el tráfico de comunicaciones en la red,
ya que sólo se envían a la función los
parámetros de entrada y ésta sólo devuelve
el valor al final de todo el proceso, el que es ejecutado en la
misma máquina donde reside la base de datos mejorando
así el rendimiento general del sistema.
Procedimiento
Un Procedimiento almacenado es un grupo de sentencias
SQL o PL/SQL que implementan un programa que se ejecuta en el
servidor de base de datos, pero que a diferencia de las
funciones, no devuelve un valor. Al igual que las funciones su
implementación permite reducir el tráfico en la
red, potenciando el rendimiento del sistema.
System Global Area (SGA)
El SGA es un área compartida de memoria que
utiliza Oracle para guardar información de control en una
instancia. Se asigna un espacio a esta área en cuando la
instancia se levanta (startup) y se elimina cuando
ésta se baja (shutdown). Cada instancia de Oracle
maneja su propia SGA y guarda información de los
buffers y la shared pool.
Transacción
Una transacción es una unidad lógica de
trabajo que consiste de una o más sentencias SQL, que
pueden finalizar con un commit o un rollback.
Las métricas de rendimiento utilizan comúnmente las
unidades "transacciones por segundo" o "transacciones por
minuto".
Trigger
Un trigger es un mecanismo que permite escribir
procedimientos que son ejecutados en forma automática (sin
una orden explícita del usuario o programador) cuando
ocurre un evento de INSERT, UPDATE o DELTE sobre una tabla o
vista. Generalmente se utilizan los triggers para forzar
las restricciones de integridad entre las tablas o automatizar
alguna otra función específica.
Autor:
Carlos Rosero F.
Asesor: Ingeniero Oscar LLerena
Ibarra – 2010
UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS
ANDES
UNIANDES
FACULTAD DE SISTEMAS
MERCANTILES.
Carrera de Sistemas e
Informática.
SISTEMAS DISTRIBUIDOS II
Página anterior | Volver al principio del trabajo | Página siguiente |